100
Is is possible to toggle the selection of dates, such the first click selects the date, the second click unselects it, and so on

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:OnResizeControl := 1281/*exCalendarFit+exHideSplitter+exResizePanelRight*/
		oCalendar := oSchedule:Calendar()
			oCalendar:AllowToggleSelectKey := 1/*exLeftClick*/
			oCalendar:AllowSelectDate := 1/*exLeftClick*/
			oCalendar:SingleSel := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
99
How can I change the background color for selected dates in the calendar panel, so always is the same no matter if the control loses the focus

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SetProperty("Background",68/*exCalendarSelBackColorUnFocus*/,oSchedule:Background(19/*exCalendarSelBackColor*/))
		oSchedule:SetProperty("Background",69/*exCalendarSelForeColorUnFocus*/,oSchedule:Background(20/*exCalendarSelForeColor*/))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
98
Is it possible to specify a different background color for the calendar panel

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SetProperty("Background",4/*exCalendarBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
97
How do I change the control's border, using your EBN files

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oSchedule:Appearance := 16777216/*0x1000000+*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
96
Is it possible to prevent showing the calendar at all

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:OnResizeControl := 768/*exChangePanels+exHideSplitter*/
		oSchedule:ScrollBars := 0/*exNoScroll*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
95
How can I change the visual aspect only for a specified event

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oSchedule:Calendar():Selection := "06/20/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("06/20/2012 09:00:00","06/20/2012 11:00:00")
			oEvents:Add("06/20/2012 10:30:00","06/20/2012 13:00:00"):SetProperty("BodyBackColor",0x1000000)
			oEvents:Add("06/20/2012 13:00:00","06/20/2012 15:00:00")
		oSchedule:SetProperty("DefaultEventPadding",-1/*exPaddingAll*/,2)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
94
How can I change the visual aspect of the events

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oSchedule:SetProperty("Background",75/*exScheduleCreateEventBackColor*/,0x1000000)
		oSchedule:SetProperty("Background",79/*exScheduleUpdateEventsBackColor*/,0x1000000)
		oSchedule:SetProperty("BodyEventBackColor",0x1000000)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
93
Is there any event to let me know once an edit has been edited

PROCEDURE OnLayoutEndChanging(oSchedule,Operation)
	DevOut( "End exScheduleEditEvent(15)" )
	DevOut( Transform(Operation,"") )
RETURN

PROCEDURE OnLayoutStartChanging(oSchedule,Operation)
	DevOut( "Start exScheduleEditEvent(15)" )
	DevOut( Transform(Operation,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:LayoutEndChanging := {|Operation| OnLayoutEndChanging(oSchedule,Operation)} /*Notifies your application once the control's layout has been changed.*/
		oSchedule:LayoutStartChanging := {|Operation| OnLayoutStartChanging(oSchedule,Operation)} /*Occurs when the control's layout is about to be changed.*/

		oSchedule:AllowEditEvent := 1/*exLeftClick*/
		oSchedule:AllowSelectEvent := 0/*exDisallow*/
		oSchedule:DefaultEventLongLabel := ""
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oSchedule:VisualDesign := "gBFLBWIgBAEHhEJAEGg7IAUHXI6g0MAAmhULikUCIgg6sh4AgRCJ0Ui8HjKTj6AADACAxRDAMgBQKAAzQFAYZhpBaERiHEZoJhUAIIRZGMQxXAcMQvDSKQRhEAoJDgN4kQKNYyQYAAYhuGaPBhASQJUhkMocR7HMygBJkUABEyYaFHdIFCQ1DykJzkCbqAgkMYeDRHQxTdQsEgpDQMIRpGA5eb+XgAV4/cTSYKQahLMizJYGUYLHgma5tTTWcTVPLVFRrJiTYRlKTJOjCCQ0ATdUyzPAeCRzQ6QJ5kUZ6CgSUpGRjkhY6agkF6VVxCNg2BT8KzxRoAKhiGpKHpaCaUQLWMB5PaoAR8fLYAA2B6bDhGaa2XAAFr2VZkWSUBBpnSWo8kYIg1D6NBuGyIhYnCXx5kuHZcjUAAOAcDxbF2L5mmKPIOl2Ox7l2XJVGAfRMh8CABiyYpgi8E5pFSRp4DQHBkiKOQug4ChpmqPRoiAco6HePxJDUXQAASCYpHA" +;
		"WpUHmGxmlwdphlwQJWncMQzFwXknCodJcEcXRiHYUIYCwAByhyaB1lAeReDgTgAHwU44GoHB3lUJgFi2BgYCYGYGgkFx2C2ax+lARI9FKA5YHiMR2guHBHlUPIChuBRJk4XIjiUKg8GsY5ohkZoQh2dJ6AYZxfFkHZoF2E5gkQOBPgMIJJHwS5WJmMRvhINwRHKAAdCieZyHEHgxEAaQYkcQZUHIGRUnQJIuAGEAxAgTYclGFBRAMCgQhgTZnEIIQ0AweIdCYZYGgaIZbDaTJbiKaJKDaDojmkChGhKI5bDoHoWD+aIqDiPImmmSh2h6J5qAqBoi3yeghjCIwpnIeoqiqapKjaLormsCouh+IwrBqVo2i2a4KlqHItY0Fo+i+bALAaF4riuOmPjCLILCaSYxCmOpwh6MotAsRoWjMC5LDqUo1m0GxSlaNgtktlgxiuWx2mKL4tnMbpHjiboKB6ZY5m6G42muOBuluJpvjObwbkqLYxG4a5CnWOIvDubp" +;
		"oiyKZrG6fo3HACxWg6OwwDsYoriUGwMCMCY0iqOgnBKQ4wnsQwUFgcR8FaSJGE+fBzBqMAxkqZwikichLlKFxAEAgIA=="
		oSchedule:Calendar():Selection := "06/20/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("06/20/2012 09:00:00","06/20/2012 11:00:00"):Editable := 3/*exEditLongLabel*/
			oEvents:Add("06/20/2012 10:30:00","06/20/2012 13:00:00"):Editable := 3/*exEditLongLabel*/
			oEvents:Add("06/20/2012 13:00:00","06/20/2012 15:00:00"):Editable := 3/*exEditLongLabel*/
		oSchedule:SetProperty("DefaultEventPadding",-1/*exPaddingAll*/,2)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
92
I've noticed that the background of the event while editing is transparent. Is it possible to change it

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AllowEditEvent := 1/*exLeftClick*/
		oSchedule:AllowSelectEvent := 0/*exDisallow*/
		oSchedule:DefaultEventLongLabel := ""
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oSchedule:VisualDesign := "gBFLBWIgBAEHhEJAEGg41hhjNcHhgAE0KhcTiYREEHDMMgRCJ0Ti0ShEGhiAADACAxRDAMgBQKAAzQFAYbhsGCGAAGEZBQgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKL5CgkBYJBrNM5SFIAEQSKA0TDOQ5To5jEBzIxIIjaJhoNoJChNU4TIDELphECdYqUCq6cp2XgAJhYNhWHYgAIjM60LRtIAELq2bpvXAACCXHalazsAA+bxvK67cAAd5/YBgOBAAaGC4NQ7EAANHC8Mw3DgAGLkORZHigACzS7MMxzIACQx3HqfaAABK6HomS5NUTTNR0TLNAy3HqWZpsOYZBima4lRTHNxxTBMIz3Bp+YI4DgC5FnOCx6jkXY5DcSxlkOGxujMWo6DaCwFhOKzgFeOw1lAAoXjuXpvngAAQBAgI"
		oSchedule:Calendar():Selection := "06/20/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("06/20/2012 09:00:00","06/20/2012 11:00:00"):Editable := 3/*exEditLongLabel*/
			oEvents:Add("06/20/2012 11:00:00","06/20/2012 13:00:00"):Editable := 3/*exEditLongLabel*/
			oEvents:Add("06/20/2012 13:00:00","06/20/2012 15:00:00"):Editable := 3/*exEditLongLabel*/
		oSchedule:SetProperty("Background",83/*exScheduleEditEventBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
91
How can I edit the Event.LongLabel property of the Event rather than ExtraLabel

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AllowEditEvent := 1/*exLeftClick*/
		oSchedule:AllowSelectEvent := 0/*exDisallow*/
		oSchedule:DefaultEventLongLabel := ""
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oSchedule:Calendar():Selection := "06/20/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("06/20/2012 09:00:00","06/20/2012 11:00:00"):Editable := 3/*exEditLongLabel*/
			oEvents:Add("06/20/2012 11:00:00","06/20/2012 13:00:00"):Editable := 3/*exEditLongLabel*/
			oEvents:Add("06/20/2012 13:00:00","06/20/2012 15:00:00"):Editable := 3/*exEditLongLabel*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
90
Is it possible to edit the event at a single click rather than double click

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AllowEditEvent := 1/*exLeftClick*/
		oSchedule:AllowSelectEvent := 0/*exDisallow*/
		oSchedule:Calendar():Selection := "06/20/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("06/20/2012 09:00:00","06/20/2012 11:00:00")
			oEvents:Add("06/20/2012 11:00:00","06/20/2012 13:00:00")
			oEvents:Add("06/20/2012 13:00:00","06/20/2012 15:00:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
89
How can I prevent editing the events
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AllowEditEvent := 0/*exDisallow*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
88
How can I prevent selecting the events
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AllowSelectEvent := 0/*exDisallow*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
87
The event gets blue when selected. It is possible to draw a frame instead

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SelectEventStyle := 816/*exLinesThicker+exLinesSolid*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
86
Is there an event that fires when the user selects a different day/week/month
PROCEDURE OnLayoutEndChanging(oSchedule,Operation)
	DevOut( Transform(Operation,"") )
	DevOut( "should be on  exCalendarSelectionChange(1)" )
RETURN

PROCEDURE OnLayoutStartChanging(oSchedule,Operation)
	DevOut( Transform(Operation,"") )
	DevOut( "should be on  exCalendarSelectionChange(1)" )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:LayoutEndChanging := {|Operation| OnLayoutEndChanging(oSchedule,Operation)} /*Notifies your application once the control's layout has been changed.*/
		oSchedule:LayoutStartChanging := {|Operation| OnLayoutStartChanging(oSchedule,Operation)} /*Occurs when the control's layout is about to be changed.*/


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
85
Can I use and display just the Caption of the Event

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:DefaultEventLongLabel := "<%=%5%>"
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oSchedule:Calendar():Selection := "06/20/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("06/20/2012 09:00:00","06/20/2012 11:00:00"):Caption := "caption 1"
			oEvents:Add("06/20/2012 11:00:00","06/20/2012 13:00:00"):Caption := "caption 2"
			oEvents:Add("06/20/2012 13:00:00","06/20/2012 15:00:00"):Caption := "caption 3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
84
How can I use the Caption property of the Event

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvent,oEvent1
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:DefaultEventLongLabel := "<%=%256%><br><b><%=%5%>"
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oSchedule:Calendar():Selection := "06/20/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("06/20/2012 09:00:00","06/20/2012 11:00:00"):Caption := "caption 1"
			oEvent := oEvents:Add("06/20/2012 11:00:00","06/20/2012 13:00:00")
				oEvent:LongLabel := ""
				oEvent:ExtraLabel := "<%=%5%>"
				oEvent:Caption := "caption 2"
			oEvent1 := oEvents:Add("06/20/2012 13:00:00","06/20/2012 15:00:00")
				oEvent1:LongLabel := "<%=%256%><br><b><%=%5%><br><fgcolor=808080>another text"
				oEvent1:Caption := "caption 3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
83
Is it possible to display a view of appointments with more than one person

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oGroup,oGroup1,oGroup2
	LOCAL oGroups
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "06/20/2012"
		oSchedule:DisplayGroupingButton := .T.
		oSchedule:ShowGroupingEvents := .T.
		oGroups := oSchedule:Groups()
			oGroup := oGroups:Add(1,"Mihai")
				oGroup:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
				oGroup:SetProperty("HeaderForeColor",oGroup:EventBackColor())
				oGroup:Visible := .T.
				oGroup:Title := oGroup:Caption()
			oGroup1 := oGroups:Add(2,"Dave")
				oGroup1:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,255,0 } )  , .F. ))
				oGroup1:SetProperty("HeaderForeColor",oGroup1:EventBackColor())
				oGroup1:Visible := .T.
				oGroup1:Title := oGroup1:Caption()
			oGroup2 := oGroups:Add(3,"Enrike")
				oGroup2:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,255 } )  , .F. ))
				oGroup2:SetProperty("HeaderForeColor",oGroup2:EventBackColor())
				oGroup2:Visible := .T.
				oGroup2:Title := oGroup2:Caption()
		oSchedule:DefaultEventLongLabel := "<%=%256%><br><%=%263%>"
		oEvents := oSchedule:Events()
			oEvents:Add("06/20/2012 10:00:00","06/20/2012 13:30:00"):GroupID := 1
			oEvents:Add("06/20/2012 11:00:00","06/20/2012 13:30:00"):GroupID := 2
			oEvents:Add("06/20/2012 13:30:00","06/20/2012 15:00:00"):GroupID := 3
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
82
How can I prevent selecting more dates in the schedule view
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:ScrollBars := 0/*exNoScroll*/
		oSchedule:AllowMoveSchedule := 0/*exDisallow*/
		oSchedule:Calendar():SingleSel := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
81
How can I get ride of the control's scroll bars

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:ScrollBars := 0/*exNoScroll*/
		oSchedule:AllowMoveSchedule := 0/*exDisallow*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
80
I am hiding the Calendar section of the control, the question is how can I select another date in the scheduler

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:OnResizeControl := 768/*exChangePanels+exHideSplitter*/
		oSchedule:Calendar():Selection := "01/01/2001"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
79
How can I add an event to indicate the Easter Sunday

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvent
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:FirstWeekDay := 0/*exSunday*/
			oCalendar:Selection := "month(value) in (3,4)"
			oCalendar:HighlightEvent():SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
			oCalendar:ShowYearScroll := .T.
		oSchedule:SetProperty("Background",68/*exCalendarSelBackColorUnFocus*/,oSchedule:Background(19/*exCalendarSelBackColor*/))
		oSchedule:SetProperty("Background",37/*exScheduleBorderSelColorUnFocus*/,oSchedule:Background(19/*exCalendarSelBackColor*/))
		oEvents := oSchedule:Events()
			oEvent := oEvents:Add("06/12/2012 10:00:00","06/12/2012 14:00:00")
				oEvent:AllDayEvent := .T.
				oEvent:Repetitive := "not(month(value) in (3,4,5)) ? 0 : ( floor(value)=(2:=floor(date(dateS('3/1/' + year(value)) + ((1:=(((255 - 11 * (year(value) mod 19)) - 21) mod 30) + 21) + (=:1 > 48 ? -1 : 0) + 6 - ((year(value) + int(year(value) / 4)) + =:1 + (=:1 > 48 ? -1 : 0) + 1) mod 7)))))"
				oEvent:LongLabel := "EASTER of <%=year(%1)%> falls in<br><%=%1%>"
				oEvent:ShortLabel := oEvent:LongLabel()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
78
I need a repetitive event happens every n-days, and stops after m-times. Can your control handle this

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvent
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SelectEventStyle := 304/*exLinesThick+exLinesSolid*/
		oCalendar := oSchedule:Calendar()
			oCalendar:NonworkingDays := 0
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:FirstWeekDay := 0/*exSunday*/
			oCalendar:Selection := "01/01/2012"
			oCalendar:Selection := "month(value) = 6"
			oCalendar:HighlightEvent():FontSize := 10
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvent := oEvents:Add("06/12/2012 10:00:00","06/12/2012 14:00:00")
				oEvent:Repetitive := "(value >= (0:=#6/1/2012#)) and ( (value - =:0) mod (1:=5) = 0) and (value-=:0) < (3*=:1)"
				oEvent:Selected := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
77
How can I add a repetitive event to occur every n days

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvent
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SelectEventStyle := 304/*exLinesThick+exLinesSolid*/
		oCalendar := oSchedule:Calendar()
			oCalendar:NonworkingDays := 0
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:FirstWeekDay := 0/*exSunday*/
			oCalendar:Selection := "month(value) = 6"
			oCalendar:HighlightEvent():FontSize := 10
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvent := oEvents:Add("06/12/2012 10:00:00","06/12/2012 14:00:00")
				oEvent:Repetitive := "value >= #6/1/2012# and ( (value - #6/1/2012#) mod 5 = 0)"
				oEvent:Selected := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
76
I am using the AutoHide option, just wondering if there is any event that notifies once the calendar panel shows or hides
PROCEDURE OnLayoutEndChanging(oSchedule,Operation)
	DevOut( "End exLayoutCalendarAutoHide(7)" )
	DevOut( Transform(Operation,"") )
RETURN

PROCEDURE OnLayoutStartChanging(oSchedule,Operation)
	DevOut( "Start exLayoutCalendarAutoHide(7)" )
	DevOut( Transform(Operation,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:LayoutEndChanging := {|Operation| OnLayoutEndChanging(oSchedule,Operation)} /*Notifies your application once the control's layout has been changed.*/
		oSchedule:LayoutStartChanging := {|Operation| OnLayoutStartChanging(oSchedule,Operation)} /*Occurs when the control's layout is about to be changed.*/

		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
75
Is it possible to display the same event on multiple days

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvent
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SelectEventStyle := 304/*exLinesThick+exLinesSolid*/
		oCalendar := oSchedule:Calendar()
			oCalendar:NonworkingDays := 0
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:FirstWeekDay := 0/*exSunday*/
			oCalendar:Selection := "01/01/2012"
			oCalendar:Selection := "month(value) = 6"
			oCalendar:HighlightEvent():FontSize := 10
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvent := oEvents:Add("06/12/2012 10:00:00","06/12/2012 14:00:00")
				oEvent:Repetitive := "value in (#6/8/2012#,#6/11/2012#,#6/20/2012#)"
				oEvent:Selected := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
74
How can I change the selection background color so it is the same if the control loses the focus

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:NonworkingDays := 0
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:Selection := "06/12/2012"
			oCalendar:HighlightEvent():FontSize := 10
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oSchedule:Events():Add("06/12/2012 10:00:00","06/12/2012 14:00:00")
		oSchedule:SetProperty("Background",68/*exCalendarSelBackColorUnFocus*/,oSchedule:Background(19/*exCalendarSelBackColor*/))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
73
How can I add a repetitive event so it occurs every Monday

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:NonworkingDays := 0
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:FirstWeekDay := 0/*exSunday*/
			oCalendar:Selection := "month(value) = 6"
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:FontSize := 10
				oHighlight:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("06/12/2012 10:00:00","06/12/2012 14:00:00"):Repetitive := "weekday(value) = 1"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
72
How can I select the current month

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:NonworkingDays := 0
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:FirstWeekDay := 0/*exSunday*/
			oCalendar:Selection := "month(value) = month(date(``))"
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
71
How can I select the next two days

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:NonworkingDays := 0
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:FirstWeekDay := 0/*exSunday*/
			oCalendar:Selection := "(value - int(date(``))) in (1,2,0)"
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
70
How can I select the last two days

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:NonworkingDays := 0
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:FirstWeekDay := 0/*exSunday*/
			oCalendar:Selection := "(int(date(``)) - value) in (1,2,0)"
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
69
How can I select the current week
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:NonworkingDays := 0
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:FirstWeekDay := 0/*exSunday*/
			oCalendar:Selection := "(int((yearday(value) -1- ((7-weekday(value - yearday(value) + 1)) mod 7) )/7) = int((yearday(date(``))-1)/7))"
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
68
Is it possible to highlight or change the background or foreground color for the today date in the schedule panel

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:NonworkingDays := 0
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:FirstWeekDay := 0/*exSunday*/
			oCalendar:Selection := "month(value) = month(date(``)) and (int((yearday(value) -1- ((7-weekday(value - yearday(value) + 1)) mod 7) )/7) = int((yearday(date(``))-1)/7))"
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
67
How can I display no working/non-working days in the control

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:NonworkingDays := 0
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:FirstWeekDay := 1/*exMonday*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
66
The schedule displays a blue border around the selected dates. How can I get ride of that

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:Selection := "06/18/2012"
		oSchedule:BorderSelStyle := -1/*exNoLines*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
65
The calendar panel shows days that belongs to another month. How can I display just the days within the current month

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():ShowNonMonthDays := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
64
Is it possible to show the non-working days with a solid color instead

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/14/2012"
			oCalendar:Selection := "value in (#6/14/2012#,#6/15/2012#,#6/16/2012#,#6/17/2012#)"
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oCalendar:NonworkingDaysPattern := 1/*exPatternSolid*/
			oCalendar:SetProperty("NonworkingDaysColor",AutomationTranslateColor( GraMakeRGBColor  ( { 224,224,224 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
63
How can I display the now-working days in the schedule panel too

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/14/2012"
			oCalendar:Selection := "value in (#6/14/2012#,#6/15/2012#,#6/16/2012#,#6/17/2012#)"
			oCalendar:FirstWeekDay := 1/*exMonday*/
		oSchedule:NonworkingTimes():Add(Transform(1,""),"00:00","00:00",-1)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
62
How can I make the control read-only

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AllowCreateEvent := 0/*exDisallow*/
		oSchedule:AllowMoveEvent := 0/*exDisallow*/
		oSchedule:AllowResizeEvent := 0/*exDisallow*/
		oSchedule:AllowMoveSchedule := 1/*exLeftClick*/
		oSchedule:AllowSelectEvent := 0/*exDisallow*/
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:Calendar():Selection := "value in (#05/24/2012#,#05/25/2012#,#05/26/2012#)"
		oSchedule:Events():Add("05/25/2012 09:30:00","05/25/2012 13:00:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
61
How can I check/uncheck a group, so it is visible after I add it

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:DisplayGroupingButton := .T.
		oSchedule:ShowGroupingEvents := .T.
		oSchedule:Groups():Add(1,"Pro"):Visible := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
60
The drop down button to show groups is not visible, even I set the DisplayGroupingButton. What Can I do

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:DisplayGroupingButton := .T.
		oSchedule:ShowGroupingEvents := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
59
It is possible to translate "All" to "Todos" or to something else

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SetProperty("Description",0/*exGroupBarAll*/,"(todos)")
		oSchedule:DisplayGroupingButton := .T.
		oSchedule:ShowGroupingEvents := .T.
		oSchedule:Groups():Add(1,"Pro")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
58
How can I remove the control's scroll bars

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:ScrollBars := 0/*exNoScroll*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
57
How can I select a month

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():Selection := "month(value) = month(date(``))"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
56
How can I display two or more dates in the scheduler (Method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "05/24/2012"
			oCalendar:Selection := "value in ( #5/24/2012#, #5/25/2012# )"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
55
How can I display two or more dates in the scheduler (Method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "0"
			oCalendar:SetProperty("SelectDate","05/24/2012",.T.)
			oCalendar:SetProperty("SelectDate","05/25/2012",.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
54
How can I define a different color for nonworking part for different days

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oNonworkingPattern
	LOCAL oNonworkingPatterns
	LOCAL oNonworkingTimes
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "05/21/2012"
			oCalendar:Selection := "(value >= #05/21/2012#) and (value <= #05/25/2012#)"
			oCalendar:FirstWeekDay := 1/*exMonday*/
		oNonworkingPatterns := oSchedule:NonworkingPatterns()
			oNonworkingPatterns:Add(1234,6/*exPatternBDiagonal*/):Pattern():SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oNonworkingPatterns:Add(1235,6/*exPatternBDiagonal*/):Pattern():SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 0,255,0 } )  , .F. ))
			oNonworkingPatterns:Add(1236,6/*exPatternBDiagonal*/):Pattern():SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,255 } )  , .F. ))
			oNonworkingPattern := oNonworkingPatterns:Add(1237,778/*exPatternFrameThick+exPatternCross*/)
				oNonworkingPattern:Pattern():SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
				oNonworkingPattern:Pattern():SetProperty("FrameColor",AutomationTranslateColor( GraMakeRGBColor  ( { 64,64,64 } )  , .F. ))
				oNonworkingPattern:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,0 } )  , .F. ))
		oNonworkingTimes := oSchedule:NonworkingTimes()
			oNonworkingTimes:Add("weekday(value) in (0,1)","10:00","11:45",1234)
			oNonworkingTimes:Add("weekday(value) = 2","00:00","08:45",1235)
			oNonworkingTimes:Add("weekday(value) = 2","15:00","24:00",1235)
			oNonworkingTimes:Add("weekday(value) in (3,5)","12:15","13:00",1236)
			oNonworkingTimes:Add("weekday(value) = 4","13:30","15:00",1237)
		oSchedule:ShowNonworkingTime := 3/*exShowNonworkingTimeSemi*/
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
53
Is it possible to show both nonworking and the events, using semi-transparent color

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oNonworkingPattern,oNonworkingPattern1
	LOCAL oNonworkingPatterns
	LOCAL oNonworkingTimes
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "05/24/2012"
			oCalendar:Selection := "value in (#05/24/2012#,#05/25/2012#,#05/26/2012#)"
		oNonworkingPatterns := oSchedule:NonworkingPatterns()
			oNonworkingPatterns:Add(1234,11/*exPatternBrick*/)
			oNonworkingPattern := oNonworkingPatterns:Add(9871,780/*exPatternFrameThick+exPatternYard*/)
				oNonworkingPattern:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oNonworkingPattern1 := oNonworkingPatterns:Add(9872,780/*exPatternFrameThick+exPatternYard*/)
				oNonworkingPattern1:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,0 } )  , .F. ))
		oNonworkingTimes := oSchedule:NonworkingTimes()
			oNonworkingTimes:Add("1","00:00","08:45",1234)
			oNonworkingTimes:Add("weekday(value) = 5","10:00","11:45",9871)
			oNonworkingTimes:Add("weekday(value) = 4","12:00","12:35",9872)
		oSchedule:Events():Add("05/25/2012 09:30:00","05/25/2012 13:00:00")
		oSchedule:ShowNonworkingTime := 3/*exShowNonworkingTimeSemi*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
52
Is it possible to show the nonworking part behind, on the back

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oNonworkingPattern,oNonworkingPattern1
	LOCAL oNonworkingPatterns
	LOCAL oNonworkingTimes
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "05/24/2012"
			oCalendar:Selection := "value in (#05/24/2012#,#05/25/2012#,#05/26/2012#)"
		oNonworkingPatterns := oSchedule:NonworkingPatterns()
			oNonworkingPatterns:Add(1234,11/*exPatternBrick*/)
			oNonworkingPattern := oNonworkingPatterns:Add(9871,780/*exPatternFrameThick+exPatternYard*/)
				oNonworkingPattern:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oNonworkingPattern1 := oNonworkingPatterns:Add(9872,780/*exPatternFrameThick+exPatternYard*/)
				oNonworkingPattern1:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,0 } )  , .F. ))
		oNonworkingTimes := oSchedule:NonworkingTimes()
			oNonworkingTimes:Add("1","00:00","08:45",1234)
			oNonworkingTimes:Add("weekday(value) = 5","10:00","11:45",9871)
			oNonworkingTimes:Add("weekday(value) = 4","12:00","12:35",9872)
		oSchedule:Events():Add("05/25/2012 09:30:00","05/25/2012 13:00:00")
		oSchedule:ShowNonworkingTime := 1/*exShowNonworkingTimeBack*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
51
Can you explain how the non working day patterns work and how to define for different days of the week

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oNonworkingPattern,oNonworkingPattern1
	LOCAL oNonworkingPatterns
	LOCAL oNonworkingTimes
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "05/24/2012"
			oCalendar:Selection := "value in (#05/24/2012#,#05/25/2012#,#05/26/2012#)"
		oNonworkingPatterns := oSchedule:NonworkingPatterns()
			oNonworkingPatterns:Add(1234,11/*exPatternBrick*/)
			oNonworkingPattern := oNonworkingPatterns:Add(9871,780/*exPatternFrameThick+exPatternYard*/)
				oNonworkingPattern:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oNonworkingPattern1 := oNonworkingPatterns:Add(9872,780/*exPatternFrameThick+exPatternYard*/)
				oNonworkingPattern1:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,0 } )  , .F. ))
		oNonworkingTimes := oSchedule:NonworkingTimes()
			oNonworkingTimes:Add("1","00:00","08:45",1234)
			oNonworkingTimes:Add("weekday(value) = 5","10:00","11:45",9871)
			oNonworkingTimes:Add("weekday(value) = 4","12:00","12:35",9872)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
50
How can I add a nonworking time

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oNonworkingTimes
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oNonworkingTimes := oSchedule:NonworkingTimes()
			oNonworkingTimes:Add("1","00:00","08:45",-1)
			oNonworkingTimes:Add("weekday(value) = weekday(date(``))","10:00","11:15",-1)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
49
How can I get the event from the cursor

PROCEDURE OnMouseMove(oSchedule,Button,Shift,X,Y)
	DevOut( "Calendar.DateFromPoint" )
	DevOut( Transform(oSchedule:Calendar:DateFromPoint(-1,-1),"") )
	DevOut( "AnchorFromPoint" )
	DevOut( oSchedule:AnchorFromPoint(-1,-1) )
	DevOut( "DateTimeFromPoint" )
	DevOut( Transform(oSchedule:DateTimeFromPoint(-1,-1),"") )
	DevOut( "TimeFromPoint" )
	DevOut( Transform(oSchedule:TimeFromPoint(-1,-1),"") )
	DevOut( "TimeScaleFromPoint" )
	DevOut( Transform(oSchedule:TimeScaleFromPoint(-1,-1),"") )
	DevOut( "GroupFromPoint" )
	DevOut( Transform(oSchedule:GroupFromPoint(-1,-1),"") )
	DevOut( "GroupHeaderFromPoint" )
	DevOut( Transform(oSchedule:GroupHeaderFromPoint(-1,-1),"") )
	DevOut( "MarkZoneFromPoint" )
	DevOut( Transform(oSchedule:MarkZoneFromPoint(-1,-1),"") )
	DevOut( "NonworkingTimeFromPoint" )
	DevOut( Transform(oSchedule:NonworkingTimeFromPoint(-1,-1),"") )
	DevOut( "MarkTimeFromPoint" )
	DevOut( Transform(oSchedule:MarkTimeFromPoint(-1,-1),"") )
	DevOut( "EventFromPoint" )
	DevOut( Transform(oSchedule:EventFromPoint(-1,-1),"") )
	DevOut( "PictureFromPoint" )
	DevOut( oSchedule:PictureFromPoint(-1,-1) )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oMarkTime
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oSchedule,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/

		oSchedule:BeginUpdate()
		oSchedule:AllowMultiDaysEvent := .F.
		oSchedule:AllowCreateEvent := 17/*exCTRLKey+exLeftClick*/
		oSchedule:AllowMoveEvent := 17/*exCTRLKey+exLeftClick*/
		oSchedule:AllowMoveTimeScale := 1/*exLeftClick*/
		oSchedule:AllowMoveSchedule := 1/*exLeftClick*/
		oSchedule:AllowSelectEvent := 17/*exCTRLKey+exLeftClick*/
		oSchedule:AllowResizeEvent := 1/*exLeftClick*/
		oSchedule:Calendar():MaxMonthY := 6
		oSchedule:SelectEventStyle := 816/*exLinesThicker+exLinesSolid*/
		oSchedule:Calendar():Selection := "05/24/2012"
		oMarkTime := oSchedule:MarkTimes():Add("timer","05/24/2012 11:35:00")
			oMarkTime:TimeScaleLabel := ""
			oMarkTime:Label := "<fgcolor=FF0000>Time: <b><%hh%>:<%nn%> <%AM/PM%></b><br>Date: <b><%loc_sdate%>"
			oMarkTime:LabelAlign := 34/*exBottomRight*/
			oMarkTime:Line := 780/*exLinesThicker+exLinesDash*/
			oMarkTime:SetProperty("BodyEventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,0,0 } )  , .F. ))
			oMarkTime:SetProperty("BodyEventForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
			oMarkTime:Movable := .T.
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 09:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:45:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 14:30:00")
			oEvents:Add("05/24/2012 12:45:00","05/24/2012 15:45:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
48
How can I show the timer only in the chart section

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oMarkTime
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():Selection := "05/24/2012"
		oMarkTime := oSchedule:MarkTimes():Add("timer","05/24/2012 11:35:00")
			oMarkTime:Label := " <font ;12>timer</font> "
			oMarkTime:LabelAlign := 34/*exBottomRight*/
			oMarkTime:TimeScaleLabel := ""
			oMarkTime:TimeScaleLine := -1/*exNoLines*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
47
How can I let the user to move the timer from the cursor

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oMarkTime
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oMarkTime := oSchedule:MarkTimes():Add("timer","05/24/2012 11:35:00")
			oMarkTime:TimeScaleLabel := ""
			oMarkTime:Label := "<fgcolor=FF0000>Time: <b><%hh%>:<%nn%> <%AM/PM%></b><br>Date: <b><%loc_sdate%>"
			oMarkTime:LabelAlign := 34/*exBottomRight*/
			oMarkTime:Line := 780/*exLinesThicker+exLinesDash*/
			oMarkTime:SetProperty("BodyEventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,0,0 } )  , .F. ))
			oMarkTime:SetProperty("BodyEventForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
			oMarkTime:Movable := .T.
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 09:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:45:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 14:30:00")
			oEvents:Add("05/24/2012 12:45:00","05/24/2012 15:45:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
46
How can I show the timer only in the time scale

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oMarkTime
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():Selection := "05/24/2012"
		oMarkTime := oSchedule:MarkTimes():Add("timer","05/24/2012 11:35:00")
			oMarkTime:TimeScaleLabel := " <font ;12>timer</font> "
			oMarkTime:Line := -1/*exNoLines*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
45
I have seen some screen shots and noticed, that you can place images on a timer. How can I do that

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oMarkTime
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oSchedule:SetProperty("HTMLPicture","pic1","c:\exontrol\images\zipdisk.gif")
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:StatusEventSize := 8
		oSchedule:SetProperty("StatusEventColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oMarkTime := oSchedule:MarkTimes():Add("timer","05/24/2012 11:35:00")
			oMarkTime:Label := "<img>pic1</img>"
			oMarkTime:TimeScaleLabel := "<fgcolor=FF0000><b><%hh%>:<%nn%> <%AM/PM%><br><c><img>1</img>"
			oMarkTime:LabelAlign := 18/*exMiddleRight*/
			oMarkTime:Line := 780/*exLinesThicker+exLinesDash*/
			oMarkTime:Movable := .T.
			oMarkTime:StatusEventPattern():Type := 3/*exPatternShadow*/
			oMarkTime:StatusEventPattern():SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 09:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:45:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 14:30:00")
			oEvents:Add("05/24/2012 12:45:00","05/24/2012 15:45:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
44
How can I change the timer's color

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oMarkTime
	LOCAL oMarkTimes
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oMarkTimes := oSchedule:MarkTimes()
			oMarkTime := oMarkTimes:Add("timer","05/24/2012 11:35:00")
				oMarkTime:Movable := .T.
				oMarkTime:SetProperty("LineColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,255 } )  , .F. ))
				oMarkTime:SetProperty("StatusEventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,255 } )  , .F. ))
				oMarkTime:SetProperty("TimeScaleLineColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,255 } )  , .F. ))
				oMarkTime:TimeScaleLabel := "<fgcolor=0000FF><b><%hh%>:<%nn%> <%AM/PM%>"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
43
Can I add multiple timers with different colors

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oMarkTime,oMarkTime1
	LOCAL oMarkTimes
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oMarkTimes := oSchedule:MarkTimes()
			oMarkTime := oMarkTimes:Add("timer1","05/24/2012 09:35:00")
				oMarkTime:Movable := .T.
				oMarkTime:SetProperty("StatusEventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oMarkTime1 := oMarkTimes:Add("timer2","05/24/2012 13:35:00")
				oMarkTime1:Movable := .T.
				oMarkTime1:SetProperty("LineColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,255,0 } )  , .F. ))
				oMarkTime1:SetProperty("StatusEventBackColor",oMarkTime1:LineColor())
				oMarkTime1:SetProperty("TimeScaleLineColor",oMarkTime1:LineColor())
				oMarkTime1:TimeScaleLabel := "<fgcolor=00FF00><b><%hh%>:<%nn%> <%AM/PM%>"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 09:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:45:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 14:30:00")
			oEvents:Add("05/24/2012 12:45:00","05/24/2012 15:45:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
42
How can I specify a different color for the status of the event that intersects with the timer

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oMarkTime
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oMarkTime := oSchedule:MarkTimes():Add("timer","05/24/2012 11:35:00")
			oMarkTime:TimeScaleLabelAlign := 1/*exTopCenter*/
			oMarkTime:Line := 257/*exLinesThick+exLinesHDot4*/
			oMarkTime:TimeScaleLine := 1/*exLinesHDot4*/
			oMarkTime:SetProperty("StatusEventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oMarkTime:Movable := .T.
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 09:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:45:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 14:30:00")
			oEvents:Add("05/24/2012 12:45:00","05/24/2012 15:45:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
41
How can the chart displays the events from the timer with a different color

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oMarkTime
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oMarkTime := oSchedule:MarkTimes():Add("timer","05/24/2012 11:35:00")
			oMarkTime:TimeScaleLabel := ""
			oMarkTime:Label := "<fgcolor=FF0000>Time: <b><%hh%>:<%nn%> <%AM/PM%></b><br>Date: <b><%loc_sdate%>"
			oMarkTime:LabelAlign := 34/*exBottomRight*/
			oMarkTime:Line := 780/*exLinesThicker+exLinesDash*/
			oMarkTime:SetProperty("BodyEventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,0,0 } )  , .F. ))
			oMarkTime:SetProperty("BodyEventForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
			oMarkTime:Movable := .T.
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 09:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:45:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 14:30:00")
			oEvents:Add("05/24/2012 12:45:00","05/24/2012 15:45:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
40
Is it possible to display the timer's label on the chart, instead time scales

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oMarkTime
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oMarkTime := oSchedule:MarkTimes():Add("timer","05/24/2012 11:35:00")
			oMarkTime:TimeScaleLabel := ""
			oMarkTime:Label := "<fgcolor=FF0000>Time: <b><%hh%>:<%nn%> <%AM/PM%></b><br>Date: <b><%loc_sdate%>"
			oMarkTime:LabelAlign := 34/*exBottomRight*/
			oMarkTime:Line := 780/*exLinesThicker+exLinesDash*/
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 09:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:45:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 14:30:00")
			oEvents:Add("05/24/2012 12:45:00","05/24/2012 15:45:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
39
How can I add a timer to the scheduler

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:MarkTimes():Add("timer","05/24/2012 11:35:00")
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 09:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:45:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 14:30:00")
			oEvents:Add("05/24/2012 12:45:00","05/24/2012 15:45:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
38
Is it possible to define the small increment to 5 minutes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:DayEndTime := "10:00"
		oSchedule:TimeScales:Item(0):MinorTimeRuler := "00:05"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
37
How can I change the time format to 24 hours to be displayed in the control's time scale

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oTimeScale
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oTimeScale := oSchedule:TimeScales:Item(0)
			oTimeScale:MajorTimeLabel := "<%hh%>:<%nn%>"
			oTimeScale:Width := 32

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
36
How can I change the time zone

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oTimeScale
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:DayEndTime := "13:00"
		oTimeScale := oSchedule:TimeScales:Item(0)
			oTimeScale:TimeZone := "+03:00"
			oTimeScale:Caption := oTimeScale:TimeZone()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
35
Is it possible to add more time scales

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oTimeScale
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:DayEndTime := "13:00"
		oTimeScale := oSchedule:TimeScales():Add("+03:00")
			oTimeScale:AlignLeft := .F.
			oTimeScale:Caption := "EST <b>+03"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
34
How can I get any event to be notified if a picture or icon is clicked (Method 2)

PROCEDURE OnPictureClick(oSchedule,Key)
	DevOut( Transform(Key,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oExPictures
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:PictureClick := {|Key| OnPictureClick(oSchedule,Key)} /*Occurs when the user clicks a picture within an event ( Event.Pictures/ExtraPictures ).*/

		oSchedule:BeginUpdate()
		oSchedule:ShowSelectEvent := .F.
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oExPictures := oSchedule:Pictures()
			oExPictures:Add("pic1","c:\exontrol\images\card.png")
			oExPictures:Add("pic2","c:\exontrol\images\diary.png")
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00"):Pictures := "pic1/pic2"
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:45:00"):Pictures := "1,2/3"
			oEvents:Add("05/24/2012 13:00:00","05/24/2012 15:45:00"):ExtraPictures := "pic2/1"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
33
How can I display a tooltip for an anchor element, for instance

PROCEDURE OnMouseMove(oSchedule,Button,Shift,X,Y)
	LOCAL s
	s := oSchedule:AnchorFromPoint(-1,-1)
	oSchedule:ShowToolTip(Transform(s,""),"info","","+16")
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oSchedule,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/

		oSchedule:BeginUpdate()
		oSchedule:ShowSelectEvent := .F.
		oSchedule:Calendar():Selection := "05/24/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:45:00"):ExtraLabel := "<a remove>remove</a>"
			oEvents:Add("05/24/2012 13:45:00","05/24/2012 15:45:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
32
Is it possible to prevent selecting events
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:ShowSelectEvent := .F.
		oSchedule:Calendar():Selection := "05/24/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:45:00"):Selected := .T.
			oEvents:Add("05/24/2012 13:45:00","05/24/2012 15:45:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
31
How can I get any event to be notified if a picture or icon is clicked (Method 1)

PROCEDURE OnAnchorClick(oSchedule,AnchorID,Options)
	DevOut( Transform(AnchorID,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oExPictures
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AnchorClick := {|AnchorID,Options| OnAnchorClick(oSchedule,AnchorID,Options)} /*Occurs when an anchor element is clicked.*/

		oSchedule:BeginUpdate()
		oSchedule:ShowSelectEvent := .F.
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oExPictures := oSchedule:Pictures()
			oExPictures:Add("pic1","c:\exontrol\images\card.png")
			oExPictures:Add("pic2","c:\exontrol\images\diary.png")
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00"):ExtraLabel := "<a pic1><img>pic1:32</img></a>"
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:45:00"):ExtraLabel := "<a pic2><img>pic2:48</img></a>"
			oEvents:Add("05/24/2012 13:45:00","05/24/2012 15:45:00"):LongLabel := "Start: <%=%1%><br>End: <%=%2%><br><br>Icon: <a 1><img>1</img></a> - <a 2><img>2</img></a>"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
30
How can I display a picture or an icon to an event

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvent
	LOCAL oEvents
	LOCAL oExPictures
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oExPictures := oSchedule:Pictures()
			oExPictures:Add("pic1","c:\exontrol\images\card.png")
			oExPictures:Add("pic2","c:\exontrol\images\diary.png")
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00"):ExtraLabel := "<img>pic1:32</img>"
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:45:00"):ExtraLabel := "<img>pic2:48</img>"
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 14:30:00"):Pictures := "1/2,3/pic1"
			oEvent := oEvents:Add("05/24/2012 12:45:00","05/24/2012 15:45:00")
				oEvent:ExtraPictures := "1/2"
				oEvent:Pictures := "1,pic1,2,pic2/3"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
29
Is it possible to display the group's caption or ID on the event's label

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oGroup,oGroup1
	LOCAL oGroups
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oGroups := oSchedule:Groups()
			oGroup := oGroups:Add(1,"Group 1")
				oGroup:Visible := .T.
				oGroup:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
				oGroup:Title := "1'st Group"
			oGroup1 := oGroups:Add(2,"Group 2")
				oGroup1:Visible := .T.
				oGroup1:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
				oGroup1:Title := "2'nd Group"
		oSchedule:DefaultEventLongLabel := "<%=%256%><br>Group's Caption: <b><%=%262%></b><br>Group's Title: <b><%=%263%></b>"
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00"):GroupID := 1
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00"):GroupID := 2
			oEvents:Add("05/24/2012 12:30:00","05/24/2012 14:30:00"):GroupID := 1
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
28
How can I show the events from different groups using the same color

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oGroup,oGroup1
	LOCAL oGroups
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:DisplayGroupingButton := .T.
		oSchedule:ShowGroupingEvents := .T.
		oSchedule:ApplyGroupingColors := .F.
		oGroups := oSchedule:Groups()
			oGroup := oGroups:Add(1,"Group 1")
				oGroup:Visible := .T.
				oGroup:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
				oGroup:Title := "1'st Group"
			oGroup1 := oGroups:Add(2,"Group 2")
				oGroup1:Visible := .T.
				oGroup1:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
				oGroup1:Title := "2'nd Group"
		oSchedule:DefaultEventLongLabel := "<%=%256%><br>Group's Caption: <b><%=%262%></b><br>Group's Title: <b><%=%263%></b>"
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00"):GroupID := 1
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00"):GroupID := 2
			oEvents:Add("05/24/2012 12:30:00","05/24/2012 14:30:00"):GroupID := 1
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
27
Is it possible to hide the grid lines in the calendar panel

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():ShowGridLines := -1/*exNoLines*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
26
How can I control the number of months displayed on the calendar pane
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:MaxMonthX := 2
			oCalendar:MaxMonthY := 2

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
25
I'm currently evaluating your eXSchedule product and i'm trying to have the header display the month according to local settings. How can I do that (Method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oCalendar:MonthNames := "J-A F-E M-A A-P M-A J-U J-L A-U S-P O-C N-V D-C"
			oCalendar:WeekDays := "Du Lu Ma Mi Jo Vi Si"
			oCalendar:TodayCaption := "A z i"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
24
I'm currently evaluating your eXSchedule product and i'm trying to have the header display the month according to local settings. How can I do that (Method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:FirstWeekDay := oCalendar:LocFirstWeekDay()
			oCalendar:MonthNames := oCalendar:LocMonthNames()
			oCalendar:WeekDays := oCalendar:LocWeekDays()
			oCalendar:AMPM := oCalendar:LocAMPM()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
23
How can I show the events grouped

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oGroup,oGroup1
	LOCAL oGroups
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:DisplayGroupingButton := .T.
		oSchedule:ShowGroupingEvents := .T.
		oGroups := oSchedule:Groups()
			oGroup := oGroups:Add(1,"Group 1")
				oGroup:Visible := .T.
				oGroup:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
				oGroup:SetProperty("HeaderBackColor",oGroup:EventBackColor())
			oGroup1 := oGroups:Add(2,"Group 2")
				oGroup1:Visible := .T.
				oGroup1:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
				oGroup1:SetProperty("HeaderBackColor",oGroup1:EventBackColor())
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00"):GroupID := 1
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00"):GroupID := 2
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00"):GroupID := 1
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
22
How can I show 2 or more days in the scheduler

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "0"
			oCalendar:SetProperty("SelectDate","05/24/2012",.T.)
			oCalendar:SetProperty("SelectDate","05/25/2012",.T.)
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
21
Is it possible to change the first week day

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():FirstWeekDay := 1/*exMonday*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
20
How can I define the new starting / ending points of the day

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:DayStartTime := "07:30"
		oSchedule:DayEndTime := "12:45"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
19
Is it possible to change the label to be displayed when user moves the events

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:UpdateEventsLabel := "Start: <%=%1%><br>End: <%=%2%>"
		oSchedule:UpdateEventsLabelAlign := 17/*exMiddleCenter*/
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
18
How can I change the default tooltip when adding new events

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:DefaultEventTooltip := "Start: <%=%1%><br>End: <%=%2%>"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
17
How can I change the default label when adding new events

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:CreateEventLabel := "Start: <%=%1%><br>End: <%=%2%>"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
16
How can I change the default label when adding new events

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:DefaultEventLongLabel := "Start: <%=%1%><br>End: <%=%2%>"
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
15
How can I programatically add events to the control

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
14
How can I hide the status part of a specific event

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00"):ShowStatus := .F.
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
13
Is it possible to change the status color for a specific event

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00"):SetProperty("StatusColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
12
Is it possible to change the background color for a specific event

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00"):SetProperty("BodyBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
11
Can I change the size of the status to be larger

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:StatusEventSize := 8
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
10
I do not need a status, can I hide it

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:ShowStatusEvent := .F.
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
9
Is it possible to change the status's default background color

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:SetProperty("StatusEventColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
8
How can I change the visual appearance of the Events (Method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:VisualDesign := "gBFLBWIgBAEHhEJAEGg55hAvCcHAkIbD/i0JE0KhYnjQDFEaAQDhEMAAIhAPhBYKA6KhyMJjNZiMJyEA2EAxAUIk0HlEHlUsl0wmU0GYgGcig87AE9AE/lsvmMzEAym8BA=="
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
7
How can I change the visual appearance of the Events (Method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:SetProperty("BodyEventBackColor",0x1000000)
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
6
How can I show the scheduler panel only, so no Calendar panel is shown

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:OnResizeControl := 768/*exChangePanels+exHideSplitter*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
5
May I display the calendar in the right side of the control

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:OnResizeControl := 1536/*exCalendarFit+exChangePanels*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
4
Is it possible to disable resizing the vertical splitter

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:OnResizeControl := 129/*exDisableSplitter+exResizePanelRight*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
3
How can I show the Calendar panel only

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:OnResizeControl := 257/*exHideSplitter+exResizePanelRight*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
2
Is there an AutoHide option for the Calendar panel

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
1
How can I hide the Calendar panel

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:OnResizeControl := 768/*exChangePanels+exHideSplitter*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN